import request from '@/utils/request'

// 查询资源可用时间列表
export function listAvailability(query) {
  return request({
    url: '/course/availability/list',
    method: 'get',
    params: query
  })
}

// 查询资源可用时间详细
export function getAvailability(id) {
  return request({
    url: '/course/availability/' + id,
    method: 'get'
  })
}

// 新增资源可用时间
export function addAvailability(data) {
  return request({
    url: '/course/availability',
    method: 'post',
    data: data
  })
}

// 修改资源可用时间
export function updateAvailability(data) {
  return request({
    url: '/course/availability',
    method: 'put',
    data: data
  })
}

// 删除资源可用时间
export function delAvailability(id) {
  return request({
    url: '/course/availability/' + id,
    method: 'delete'
  })
}

// 查询资源时间表（对应后端getTimetable方法）
export function getResourceTimetable(resourceId, academicYear) {
  return request({
    url: '/course/availability/timetable', // 后端接口路径与Controller映射一致
    method: 'get',
    params: {
      resourceId: resourceId,  // 对应后端@RequestParam参数
      academicYear: academicYear
    }
  })
}
export function getStudentTimetable(courseScheduleDetailsId) {
  return request({
    url: '/course/availability/student-timetable', // 后端接口路径与Controller映射一致
    method: 'get',
    params: {
      courseScheduleDetailsId: courseScheduleDetailsId,  // 对应后端@RequestParam参数
    }
  })
}

/**
 * 提交完整的课程信息，包括教师、教室、时间安排等
 * @param {Object} data - 包含完整课程信息的数据对象
 * @returns {Promise<AjaxResult>} - 包含操作结果的Promise
 */
export function submitCourseInfo(data) {
  return request({
    url: '/course/availability/submitCourseInfo',
    method: 'put',
    data: data
  });
}

// 通过教师ID查询全部学期课程详细信息
export function getCoursesByTeacherId(teacherId) {
  return request({
    url: `/course/availability/teacher/${teacherId}`,
    method: 'get'
  })
}
export function selectByResourceIdAndResourceType(resourceId) {
  return request({
    url: '/course/availability/selectByResourceIdAndResourceType',
    method: 'get', // 与后端保持一致：GET
    params: { resourceId } // GET 请求用 params 传递 query 参数
  });
}
/**
 * 根据教师ID查询课程安排查询列表
 * 后端接口会自动获取当前登录教师的ID
 * @returns {Promise<AjaxResult>} 包含课程安排查询列表的响应
 */
export function selectCourseSchedulingIinquiryListByTeacherId() {
  return request({
    url: '/course/availability/selectCourseSchedulingIinquiryListByTeacherId',
    method: 'get'
  });
}

/**
 * 根据教师ID查询课程安排查询列表
 * @returns {Promise<AjaxResult>} 包含课程安排查询列表的响应
 */
export function getCourseScheduleDetailsByTeacherId00() {
  return request({
    url: '/course/availability/getCourseScheduleDetailsByTeacherId00',
    method: 'get',
  });
}
/**
 * 通过原教师ID查询所有对应的调整记录
 * @param originalTeacherId 原教师ID
 * @return 调整记录列表
 */
export function selectAdjustmentRecordByOriginalTeacherId() {
  return request({
    url: '/course/availability/selectAdjustmentRecordByOriginalTeacherId',
    method: 'get',

  });
}

// 查询课程完整上课时间列表
export function getAllByCourseScheduleDetailsId(courseScheduleDetailsId) {
  return request({
    url: `/course/availability/getAllByCourseScheduleDetailsId/${courseScheduleDetailsId}`,
    method: 'get'
  })
}

export function CourseScheduleDetailsList() {
  return request({
    url: '/course/availability/CourseScheduleDetailsList',
    method: 'get'
  })
}

export function selectAdjustmentRecord() {
  return request({
    url: '/course/availability/selectAdjustmentRecord',
    method: 'get'
  })
}

/**
 * 根据课程班ID获取教师姓名列表
 * @param {String} courseScheduleDetailsId 课程班详情ID
 * @returns {Promise<List<String>>} 教师姓名列表
 */
export function getTeacherNamesByCourseScheduleDetailsId(courseScheduleDetailsId) {
  return request({
    url: '/course/availability/getTeacherNamesByCourseScheduleDetailsId',
    method: 'get',
    params: {
      courseScheduleDetailsId: courseScheduleDetailsId
    }
  })
}